package com.resou.reader.api.service;


import com.resou.reader.api.entry.ActivityRechargePrice;
import com.resou.reader.api.entry.BookDetailBean;
import com.resou.reader.api.entry.CarousePicBean;
import com.resou.reader.api.entry.CommonData;
import com.resou.reader.api.entry.FilterBean;
import com.resou.reader.api.entry.FriendHelp;
import com.resou.reader.api.entry.IsFirstOpen;
import com.resou.reader.api.entry.ParticipationCheck;
import com.resou.reader.api.entry.PlateMoreBean;
import com.resou.reader.api.entry.PrivilegeBean;
import com.resou.reader.api.entry.RechargeActivityRule;
import com.resou.reader.api.entry.Result;
import com.resou.reader.api.entry.ResultList;
import com.resou.reader.api.entry.WXPayBean;
import com.resou.reader.data.bookstore.model.BasicList;
import com.resou.reader.data.bookstore.model.PlateNovels;
import com.resou.reader.mine.paycenter.AliPay;

import java.util.List;

import io.reactivex.Observable;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * VIp模块服务接口
 */
public interface VipService {

    /**
     * 查询VIP首页的banner信息
     *
     * @param index_channel 1:书城banner   2:vip的banner
     * @return
     */
    @GET("book/indexPic")
    Observable<Result<CommonData<List<CarousePicBean>>>> getVIPBanner(@Query("index_channel") int index_channel);

    /**
     * 查看VIP榜单更多信息
     *
     * @param plateId       板块ID：榜单列表接口返回的plateId
     * @param plateViewType 查看类型：榜单列表接口返回的plateViewType
     * @param page          页数：从0开始，默认为0
     * @param pageNum       每页数量，默认为10，plateViewType为换一换时传入榜单列表接口返回的plateShowCount
     * @return
     */
    @POST("module/plateMore")
    Observable<Result<PlateMoreBean<PlateNovels>>> getVIPPlateMore(@Query("plateId") String plateId, @Query("plateViewType") String plateViewType, @Query("page") int page, @Query("pageNum") int pageNum);

    /**
     * 查看VIP榜单信息
     *
     * @param moduleType 传值：vip
     * @return
     */
    @POST("module/plateList")
    Observable<ResultList<BasicList<PlateNovels>>> getVIPPlateList(@Query("moduleType") String moduleType);

    /**
     * 查询VIP首页特权信息展示
     *
     * @return
     */
    @POST("vip/privilege")
    Observable<Result<PrivilegeBean>> getVIPPrivilege();


    /**
     * 查询VIP首页特权信息展示
     *
     * @return
     */
    @POST("vip/channel")
    Observable<ResultList<ActivityRechargePrice>> getVIPChannel();

    /**
     * 获取赛选数据接口
     *
     * @param channel 男生：1；女生：2
     * @return
     */
    @POST("vip/filter")
    Observable<ResultList<FilterBean>> getVIPFilter(@Query("channel") int channel);

    /**
     * 查看VIP书库筛选结果
     *
     * @param cate    vip筛选条件返回值filterType为1的筛选条件所选值，全部时传入-1
     * @param word    vip筛选条件返回值filterType为2的筛选条件所选值，全部时传入-1
     * @param serial  vip筛选条件返回值filterType为3的筛选条件所选值，全部时传入-1
     * @param channel 男生小说传1  女生小说传2  默认为1
     * @param page    页码，默认为0，从0开始
     * @param pageNum 每页条数，默认为10
     * @return
     */
    @POST("vip/doFilter")
    Observable<Result<BasicList<PlateNovels>>> getVIPChannel(@Query("cate") int cate, @Query("word") int word, @Query("serial") int serial, @Query("channel") int channel, @Query("page") int page, @Query("pageNum") int pageNum);


}
